前言
本来以为要实现局域网自动备份很简单,网上有现成的方案:在 NAS 设备上安装 netatalk 提供 afp 协议服务,在 macOS 系统自动挂载,然后在 Time Machine 中配置。
下面三步都很简单,但是在配置 automount 的时候很艰难,一直报错。于是决心复习一遍 unix 系统的文件系统知识,研究一下最新的使用 NAS 配置 Time Machine 局域网备份的方法。
- Netatalk>) 是一个 Apple Filing Protocol (AFP) 的开源实现。它为 Unix 风格系统提供了与 Macintosh 文件共享的功能。CentOS 系统服务端使用 yum install netatalk 轻松安装,修改配置文件重启。
- 在 Finder 使用 Connect To Server 在界面上交互挂载。
- 在 Time Machine 中配置。
Time Machine 备份磁盘介绍和本次配置目标
早期的系统仅支持 AFP 网络文件协议[1],但最新的官方支持文档[2]仅推荐了 SMB 网络文件协议。我这次选择按照最新推荐的协议进行配置。
要使用“时间机器”备份您的 Mac,您需要以下任一类型的储存设备:
本次配置的目标是
许多第三方 NAS 设备支持通过 SMB 进行的“时间机器”备份。有关详细信息,请查看适用于您 NAS 设备的文稿。
- SMB protocol version 3.x, including SMB 3.x signing。NAS 服务需要支持 SMB 3.x 。
- Support for Bonjour discovery. NAS 服务需要支持 Bonjour discovery 。
Unix 文件系统架构简述
文件系统是从 Unix/类 Unix 操作系统层面进行的描述,自上而下可以分为以下几个层面。
操作系统标准——人机交互
Unix 的标准化包括 ISO C、IEEE POSIX(Portable Operating System Interface 可移植操作系统界面)、SUS(Single Unix Specification 单一 Unix 规范) 等。
标准约定了文件系统应该具备什么样的概念和功能,具体而言就是规定了有哪些系统例程以及相关参数。不关心具体的实现。
操作系统实现——系统与磁盘交互
不同的操作系统有不同的文件系统实现,不同的文件系统有不同的特性,影响到文件操作性能和数据安全。
同一个操作系统运行时可以同时挂载多个文件系统。
简单列举几种常见的实现。
- NTFS:NTFS(英語:New Technology File System),是 Microsoft 公司开发的专用文件系统,Mac OS X 内核能对 NTFS 进行有限的读操作。Linux 和 BSD 提供自由及开放源代码的软件,可用于读写 NTFS 文件。
- APFS:苹果文件系统(英語:Apple File System,APFS)是一个适用于 macOS、iOS、tvOS 和 watchOS 的文件系统,目前正在由苹果公司开发和部署。
- XFS:XFS,一种高性能的日志文件系统,特别擅长处理大文件,同时提供平滑的数据传输。目前 CentOS 7 也将 XFS+LVM 作为默认的文件系统。
- ext4:第四代扩展文件系统(英语:Fourth extended filesystem,缩写为 ext4)是 Linux 系统下的日志文件系统,是 ext3 文件系统的后继版本。
除了单文件大小,个人用户通常不会碰到其他文件系统的问题。大量的云平台遮蔽了文件系统之间的差异,软件开发工程师通常无需关心底层使用的是哪种文件系统,架构师需要关心各文件系统的性能及其他特性。
网络存储
这里所指的网络存储是指的不通过主板硬件接口连接存储设备,而是通过网络挂载的存储设备。
- NFS:网络文件系统(英语:Network File System,缩写作 NFS)是一种分布式文件系统,力求客户端主机可以访问服务器端文件,并且其过程与访问本地存储时一样,它由昇阳电脑(已被甲骨文公司收购)开发,于 1984 年发布
- SMB:伺服器讯息区块(Server Message Block,缩写为 SMB),又称网路文件共享系统(Common Internet File System,缩写为 CIFS, /ˈsɪfs/),一种应用层网络传输协议,由微软开发,主要功能是使网络上的机器能够共享计算机文件、打印机、串行端口和通讯等资源。
- AFP:苹果归档协议(英语:Apple Filing Protocol,缩写 AFP)也称 Apple 文件协议、Apple 归档协议,以前称为 AppleTalk Filing Protocol,它是一个专有网络协议,并且是 Apple File Service(苹果文件服务,缩写 AFS)的一部分,为 macOS 和经典 Mac OS 提供文件服务。目前在苹果文件系统(APFS)中已弃用。
- 对象存储:无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。不同的云厂商有不同的实现和产品名。
最后是集各种接口于一身的新一代分布式存储。Linux 通过 Samba+Avahi 搭建 Time Machine 服务
磁盘驱动和实现
磁盘包括软盘、磁带、机械硬盘、SSD 等。
磁盘的驱动和实现由存储设备厂商负责,通常都已经集成到了操作系统中,即插即用,普通用户无需关心。
最新 NAS 配置方法
需要配置:
- samba:提供 SMB 服务
- avahi-daemon:提供 Bonjour discovery 服务
samba
安装 yum install samba
启动 systemctl start smb.service
配置 vim /etc/samba/smb.conf
1 | [global] |
avahi
Avahi 不需要配置。没错,直接启动就好了。
# systemctl enable –now avahi-daemon |
---|
其他
如果开启了防火墙,需要开启一下 mDNS 端口 5353,CentOS 8 的指令如下
firewall-cmd –zone=public –add-port=5353/udp
个人初次使用 TimeMachine 第一选择硬盘时,必须先在 Finder 挂载才能看到,之后就能够自动连接了。
参考资料
- OS X Lion: 您可以与 Time Machine 配合使用的磁盘 https://support.apple.com/kb/PH4327?locale=zh_CN
- 可与“时间机器”搭配使用的备份磁盘 https://support.apple.com/zh-cn/HT202784
- Linux 通过 Samba+Avahi 搭建 Time Machine 服务 https://blog.dazzyd.org/providing-time-machine-on-linux/
- 配置 samba 作为苹果电脑 time machine 的备份硬盘 https://tlanyan.me/setup-samba-as-time-machine-destination/